<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="../js/cookie.js"></script>
    <script src="../js/ajax.js"></script>
    <script src="../js/interface.js"></script>
</head>
<body>
    

    <script>
        //   async  使得异步操作变得更加方便
        
        // 普通函数 
        // function fn(){
        //     return 1;
        // }
        // // fn(); 
        // console.log(fn())  // 1
        
        // function fn(){
        //     return new Promise((resolve,reject)=>{
        //         resolve(1)
        //     })
        // }
        // // fn();

        // fn().then(res=>{
        //     console.log(res)
        // })


        // 如何创建异步函数  
        // 在普通的函数之前 添加关键字 async 可以理解对 Promise  进行了一次二次封装  => 返回 Promise 实例
        // async函数返回一个 Promise 对象  then catch 
        // async function fn(){
        //     // return 1; 
        //     // hello;
        //     throw 'false'
        // }
        // var res = fn()
        // console.log(res)    // then catch 
        // res.then(result=>console.log(result)).catch(err=>console.log(err))

        function readText(url,timeout){
            return new Promise(function(resolve,reject){
                setTimeout(()=>{
                    $.ajax({
                        type:'get',
                        dataType:"text",
                        url,
                        success:res=>{
                            resolve(res)   // 传递请求的结果 
                        }
                    })
                },timeout)
            })
        }
        
        // async 声明一个 promise 函数 
        // await 等待 等待当前的Promise的状态才能执行下一个 (resolve reject)
        console.time('wh2107')
        async function getText(){
            var str = "";
            var txt  = await readText("../data/1.txt",2000);    
            console.log(txt);
            str+= txt;

            var txt  = await readText("../data/2.txt",4000);    
            console.log(txt);
            str+= txt;

            var txt  = await readText("../data/3.txt",6000);    
            console.log(txt);
            str+= txt;

            return str;
        }
        var p = getText()
        console.log(p)


        p.then(res=>{
            console.log(res);
            console.timeEnd('wh2107')
        })


        async function getGoods(){
            return $.ajax({

            })
        }
        
        // Promise.all
        // Promise.race
        // new Promise().then().catch()  

        // 跨域  
        // jsonp  
        // 面向对象
        // jquery 
        // 项目梳理一下   (git  sass  gulp  node )

    </script>
</body>
</html>